ユーザー属性を使用して、ユーザーごとに異なるデータを表示する #looker
Looker勉強中のikumiです。今回は、アクセスフィルターを使用してユーザーごとにデータのフィルタリングを行う方法を試してみました。
ユースケース
ECサイトの実績データのうち、担当ブランドのみのデータを表示させるようにしたい
やってみる
基準となるExplore画面
- ブランドごとの売上を確認できるExplore画面を作成しました
- この時点では、アクセスフィルターをかけていないので全ブランド表示されています
ユーザー属性の作成
- 管理者タブから「ユーザー属性」を選択し、「Create User Attribute」を選択します
-
以下の通り設定を行いました
-
ユーザーに属性値を付与する
- 自分のアカウントに「Calvin Klein」の値を付与しました。今回は個別ユーザーへ属性値を付与していますが、担当ブランドのグループを作成し、グループに対して属性値を付与することも可能です
- 自分のアカウントに「Calvin Klein」の値を付与しました。今回は個別ユーザーへ属性値を付与していますが、担当ブランドのグループを作成し、グループに対して属性値を付与することも可能です
ユーザー属性の設定項目の意味やユーザーへの属性値の付与の方法については、こちらのブログでも紹介していますので参考にしてください。
access_filterを設定する
- access_filterはexploreに設定します
- 今回は、order_itemsとブランドの情報が入ったproductsのviewをjoinしたexploreを使用し、そこにaccess_filterを設定しました
explore: order_items { label: "(1) オーダー、アイテム、ユーザー関連" view_name: order_items view_label: "オーダー" #アクセスフィルターの設定 access_filter: { field: products.brand user_attribute: brand_filter } join: products { view_label: "プロダクト" relationship: many_to_one sql_on: ${order_items.product_id} = ${products.id} ;; }
もう一度Explore画面を確認する
- ユーザー属性で設定したブランドのみが表示されるようになっていました!
最後に
今回はユーザー属性を使用してaccess_filterを設定する方法を試してみました。ユーザー属性は、ログイン認証に使用したり、Lookerのランディングページを変更したり色々な使用用途がありますので、今後も色々と試してみたいと思います。